import time
#菜单
def menu():
    while True:
        print('----------------------欢迎来到BMR身体健康指数测试系统-----------------------------')
        print('菜单栏')
        print('1-开始计算')
        print('2-退出本程序')
        user_choose = input('尊敬的用户，请从菜单栏中选择输入数字1或2进行您想要的操作：')
        print('----------------------------------------------------------------------------')

        if user_choose == '1':
            time.sleep(0.5)   #time
            count_BMR()

        elif user_choose == '2':
            time.sleep(0.5)
            print('您已退出本程序！')
            print('------------------------------------------------------------------------')
            break

        else:
            print('请输入正确的数字哦！(2秒后返回菜单)')
            time.sleep(2)
#BMR计算
def count_BMR():
    user_input = input("准备好开始了吗?'yes/no':")
    while user_input == 'yes':
        print('请您输入以下信息，并且用空格分隔')
        user_input_str = input(' 身高(cm) 体重(kg) 年龄 性别：')
        str_list = user_input_str.split(' ')
        try:
             #单位换算
            height = float(str_list[0])
            if height < 10:
                user_sure = input('检测到身高过矮，是输入成米了吗，这边帮您单位换算一下，确认请按1：')
                if user_sure == '1':
                    height = height * 100
                else:
                    height = height

            weight = float(str_list[1])
            if weight > 150:
                user_sure = input('检测到体重偏高，是输入成斤了吗，这里帮你单位换算一下，确认请按1：')
                if user_sure == '1':
                    weight = weight /2
                else:
                    weight = weight

            age = int(str_list[2])
            gender = str_list[3]
           #分男女
            if gender == '男':
                BMR = 10 * weight + 6.25 * height - 5 * age + 5
                print('您的身高；{}厘米，体重:{}公斤，年龄{}岁,性别:{}'.format(height, weight, age, gender))
                print('正在计算您的BMR,请稍候', end='')  # 输出函数，end=''将最后的换行符替换为空
                for i in range(3):  # for循环，3是点的个数
                    print(".", end='')  # 打印三个点
                    time.sleep(1)
                print('\r' + ' ' * 15 + '\r')  # 用空格将loading...覆盖，即删掉
                print('算得您的基础代谢率为:{}大卡'.format(BMR))

            elif gender == '女':
                BMR = 10 * weight + 6.25 * height - 5 * age - 161
                print('您的身高；{}厘米，体重:{}公斤，年龄{}岁,性别:{}'.format(height, weight, age, gender))
                print('正在计算您的BMR,请稍候',end='')
                for i in range(3):
                    print(".",end='')
                    time.sleep(1)
                print('\r' + ' ' * 15 + '\r')
                print('算得您的基础代谢率为:{}大卡'.format(BMR))
            else:
                print("暂不支持该性别")
            user_input = input("是否继续计算您的BMR呢？'yes/no(2秒后将返回菜单)':")

      #报错
        except ValueError:
            print('-----------请输入正确的信息！--------------(2秒后将返回计算)')
        except IndexError:
            print(('------------输入的信息过少!---------------(2秒后将返回计算'))
        except:
            print('-----------------程序异常!-----------------(2秒后将返回计算)')
            print()
        time.sleep(2)

if __name__ == '__main__':
    menu()